*/
Rhys Cornelious
University of Waterloo Biomedical Engineering Class of 2025
(519)-328-8769
rhyscornelious@gmail.com
318 Spruce St. Waterloo, ON
N2L 3M7
In: Rhys Cornelious
https://github.com/RhysCornelious
Hi, my name is Rhys Cornelious. If there was one thing that I
want you to take away from reading this portfolio, it is my
passion for learning. Outside of engineering, this has led me to
become a private and glider pilot, scuba diver, hiker, fisher,
(half) marathon runner, and more. I made this portfolio to
provide a succinct document that can provide a better
understanding of who I am and the work I have done.
Whether you read every word, or just skim, I hope that this
document helps you understand my qualifications, but more
importantly it conveys my passion to learn and grow as an
engineer.
About Me
Quick Facts
- I love the outdoors, and going hiking, camping, as well as fishing. As of right
now, the Rocky Mountains and Algonquin are my favourite sites to visit.
- I am both a private and glider pilot. I gained both of these licenses through
scholarships earned while in the air cadet program.
- Through my previous co-op work experiences, as well as personal and school
projects, I have developed a love for electrical and PCB design. Most of the
projects detailed in this document are at least partly related to this field.
- I have always been very interested in the automotive field. I initially gained an
interest through my time in aviation and joined the Formula Electric design
team at UW to get more experience in the area.
EEG Video Game Controller
BME 294L/Side Project
This project was completed with the intent of differentiating between
alpha and beta waves from a user. Initially the system was designed on
a breadboard, after which I made an optimized version in Altium.
Following this, the goal was to create a modified version of Flappy
Bird with the users’ inputs being concentration and relaxation.
Objective
Design Choices
The first interesting choice is the use of 3.3V as the ground
reference for all filters. This is done to prevent any negative
voltages from reaching the ADC, as the component
utilized does not handle these values accurately. Another
important feature is the use of a potentiometer to give the
circuit a variable gain. This is important to account for
the differences in signal magnitude that different users
produce. An important feature of the PCB is the
placement of a solid ground plane immediately below the
top layer, where the signal travels. This greatly lowers the
amount of noise which is very important when working
with such delicate signals. Finally, the layout of the board
is somewhat atypical, as it is long and narrow. This is to
provide a clear representation of the step-by-step signal
processing method.
Key Takeaways and Future Considerations
This project was extremely challenging, in large part due to the
number of stages, and the miniscule magnitude of the signals being
measured. Any time the circuit did not perform as expected the
debugging process was tedious as there were many places where
things could have gone wrong. It was extremely important to break
the system down into individual stages to get accurate information
on where issues arose. Signal preservation was also something that I
learned a lot about, as our initial system would produce a distorted
signal if you as much as blew on some parts of it. The game
development in this project is still ongoing, and you can learn more
about here. If you want to take a closer look at the electrical system
schematic and PCB design, you can find them all here.
Photoacoustic Remote Sensing Peak Detector
Photomedicine Labs
The purpose of this peak detector was to both increase the accuracy
and decrease the magnitude of data collection in photoacoustic
remote sensing (PARS) systems. Currently, the peaks of each pulse in
the time domain obtained by taking 64 samples and iterating
through each to find the greatest magnitude. The difficulty lies in
the miniscule pulse wavelength of 20ns, as well as the 50kHz
frequency that they are produced at. The design sought to use an
OPA615 transconductance amplifier due to its minimal capacitance
and high speed. Furthermore, Texas Instruments (the manufacturer)
provides a basic layout for a peak detection circuit that could be
adapted to this high precision application.
Objective
PCB Design
Due to the high-speed nature of the system, the PCB was designed to
be as efficient as possible. Certain design features, such as internal
unbroken ground planes, short and straight signal paths,
decoupling capacitors on all power supplies, and impedance
matching the traces to match the BNC connectors were all crucial to
ensure signal accuracy and clarity. The three most effective diodes
(determined from the simulations) were selected, and two different
boards were designed to have both 1 and 2 diode configurations.
This meant 6 total boards were manufactured and tested. Subsequent
comparisons between the accuracy of their outputs allowed for a
definitive choice of the most effective design.
Key Takeaways and Future Considerations
Soft/Rigid Hybrid Robotic Hand
University of Waterloo Microfluidics Lab
This project aimed to utilize pneumatic soft actuators to create a
biomimetic grasping hand. Due to the highly compliant nature of
the actuators, the design was intended to provide a less rigid grasping
feel than typical cable and pully prosthesis. Main issues to overcome
included reducing off plane instability, preventing actuator bulging,
and ensuring hand dexterity. Due to the infancy of the research
project, novelty and creativity was very important for developments.
Objective
Physical Design
Gyroscope Tracking
To generate feedback for the angles of each joint, a miniature PCB
was designed for the utilization of the MPU-6050 gyroscope and
accelerometer module. This highly optimized design allowed the
boards to fit inside even the smallest pieces of the hand and provide
system feedback. A small 2 layer board was designed using EAGLE
and ordered for manufacturing. All board information was obtained
through I2C communication and processed using Arduino.
Key Takeaways and Future Considerations
A major takeaway I gained from this project was that I really enjoy being creative in my design solutions. The problem I was given was
extremely open ended and allowed me to try out a variety of ideas to solve the critical problems that the system faced. For each successful idea
you see here, there are at least 10 sub-par prototypes that were needed to achieve the final product. I got a lot of enjoyment from this type of
problem. Additionally, I further confirmed my love for multidisciplinary problems. Here I was able to use physical design, electrical design,
and software development to create a polished final project. I find that there is nothing more satisfying than when all of these fields come
together and integrate into a smoothly functioning final product. Having the knowledge of how each and every system works allows me to
effectively adapt them to aid each others’ weaknesses. For my work, I am being included in the authorship of a paper that was accepted in the
32nd IEEE International Conference on Robot and Human Interactive Communication (IEEE RO-MAN 2023).
CNC Drawing Robot
Personal Project
The end goal of this project was to design a robot that could draw an
image when provided G-code instructions. 2 stepper motors were
to control the X and Y axis of the robot, while a servo was
implemented to adjust the pen tip height (Z axis). An Arduino,
equipped with a modified version of GRBL allowing for the use of
servos was used as the control system, interfaced with the stepper
motors using a simple motor shield. All components were designed
in SOLIDWORKS and produced using additive manufacturing.
Objective
The system was designed to use two steppers motors for the X and
Y axis. The first motor was connected to a static part of the system,
and thus drove the movement of the rest of the apparatus along the X
axis. The second motor was fixed to an apparatus that travelled along
the X axis and drove the motion of the pen along the Y. Both of these
axis used rubber timing belts to provide and easy and accurate
driving system. The final component, the servo motor, was
mounted a opposite the marker/pen on the Y axis and connected via
a length of fishing line. When it spun, the pen was pulled upwards
against a small spring fixed within its holder. This spring ensured
that the fishing line was always under tension which was mandatory
to make sure that the marker/pen in use was stable enough to
produce a quality drawing.
Electrical/Software Components
The electrical system was quite basic and used an Arduino motor
shield to control all inputs and outputs. The key components
included the motors, servo, and contact switches which provided the
driving power and system feedback. The Arduino runs a modified
version of GRBL called Mi-GRBL, the details of which can be
found here. This allows it to control the servo motor in the Z axis.
The G-Code instructions were generated using ChiliPeppr and
uploaded directly to the Arduino. Overall, this was quite a simple
process, and only required some fine tuning through the inputting of
the dimensions and desired drive speeds, accelerations, etc.
Key Takeaways and Future Considerations
The first large takeaway from this project was to take a deeper look
into the mechanics of the system prior to manufacturing. A large
issue appeared when the upper timing belt began to rub against
itself. The pulley system was designed to maintain tension across the
axis, thus ensuring the teeth on the stepper motor would not lose
their grip. The mounting points for this belt were centered on each
opposing side of the axis, however, resulting in the belt rubbing
against itself in the first iteration of the design. While quickly adding
slots for the belts to run through was not difficult, it was an
important lesson in planning well to prevent having to redesign the
parts. Another lesson is to be sure of the tolerance capabilities of the
manufacturing method used, as some printed parts needed to be
scrapped after the set screws did not bite or the metal rods were
unable to fit.
Flashing Bike Light
Personal Project
The purpose of this project were to design and fabricate an up-
counter from a crystal oscillator, four 4-channel multiplexers, two 8-
channel D flip-flops, and four 4-channel adders which would
consequently be used to drive a flashing LED for my bike. The
system should be robust enough to be easily mounted to the back of
my bike seat and be turned on and off with the press of a button.
Objective
Simulation of the binary logic was completed using Falstad, a free
online circuit simulation tool. This acted as a proof of concept for
the design and was helpful in determining the logic behind resetting
the counter. The first prototype was designed using a breadboard,
allowing me to build the system in small steps and ensure the
functionality of each component independently. First, the waveform
of the quartz oscillator was obtained using a oscilloscope.
Functionality was then confirmed using a single multiplexer, D
flip-flop register, and adder. Once the entire binary system was
designed, an oscilloscope was once against used to iterate through
each channel of the flip flop to ensure the wavelength of each
channel doubled as they increased in value. Using a basic diode was
helpful to provide a confirmation of the timing of the light turning
on or off. Once this was complete, the addition of the secondary
power source and MOSFET to drive the lighting of the stronger
LED’s was a simple final touch on the system.
PCB/Enclosure Design
A basic 2-layer PCB was more than enough for all required
connections. The outline of the board was designed to be a long
rectangle that would allow it to be aligned with the bike seat and not
impede pedalling. By first routing all signal paths, it was relatively
simple to ensure there were no 90 degree angles or excessively long
paths. Following this, constant voltage sources, such as power
supplies, grounds and enable signals were routed as trace length
efficiency was less important in these connections. The power
connections for both the logic and LED power sources were
implemented using vias that allowed connections to be easily
soldered. The container was designed in SOLIDWORKS to house
the PCB, power supply and LEDs while mounting seamlessly onto
my bicycle seat facing backwards for oncoming traffic to see.
Key Takeaways and Future Considerations
Segmentation was vital in the prototyping of this design. Due to the large number of connections, it was very important to break the circuit
into smaller subsystems that could be validated before incorporation into the final product. This greatly helped to reduce the amount of time
it took to debug the system and get the breadboarded model functional. An oscilloscope was used to test the waveforms of the in and outputs
of each gate in the two registers. Furthermore, an issue was encountered in the use of the MOSFET to turn the light on and off. I found that
the light would remain in whatever state it was manually set to and needed to be externally grounded to turn off. I realized that I had not
factored in the need for a pull-down resistor that would allow for the dissipation of voltage in the drain of the component. Fortunately I had
made a similar error in a previous project (See AED Emulation for more information) and was thus able to quickly determine what the issue
was by drawing on my previous knowledge. If you would like to view the PCB design, you can find it here.
AED Emulation
BME 393L Final Project
The goal of this project was to accurately emulate an AED using an
Arduino as a Moore FSM. We aimed to adjust the speeds of multiple
built in Arduino timers used to run concurrent events. Furthermore,
multiple interrupts were implemented; all connected to a common
pin, with a multiplexer used to decipher interrupt meanings.
Objective
Electrical System
One of the key aspects of the electrical system is the ability to capture
multiple different interrupts on the same interrupt pin. This was
achieved using diodes forward biased to face the interrupt pin. Here
they performed the function of allowing current to flow from the
button pressed towards the interrupt pin but not the other way. By
attaching an additional connection to a separate pin upstream of the
diode, it was possible to check which button had been pressed
immediately after the interrupt was fired. This prevented the other
buttons from being pulled high while providing the differentiation
between each. Another important aspect was the multiplexer, which
allowed for the use of an Arduino Uno rather than a Mega without a
pin shortage.
Key Takeaways and Future Considerations
One of the main takeaways that I gained from this project was a
realization of how useful FSMs can be in the integration of hardware
and software. The set states provided a much easier debugging
process than an analog system would have. Furthermore, I was able
to apply some theoretical electrical system knowledge to solve a real
problem. Initially, there were no pull-down resistors upstream of the
diodes used for interrupts, which meant that when a different
button was pressed, all of the interrupts were pulled high. This was a
really satisfying feature to debug and showed me the importance of
stepping back and trying to understand what was really happening
in a circuit. I am now working on this as a side project, and aim to
incorporate the analog reading, processing, and classification of
heart rate signals to the system.
Force Sensing Mat
University of Waterloo IDEAs Clinic
This project was completed with the intent of use as a teaching aid by
professors at the University of Waterloo. The original plan was for it
to be used in gait analysis for biomechanics courses, and as the project
progressed it became apparent that it would also be a good physical aid
in circuits courses do to the visual depiction of the signal wiring.
Objective
Electrical System
The multiplexers were all attached to
the Arduino Mega using perf boards,
and to the mat through over 300 ft
of wire. These boards were
organized and soldered as neatly as
possible to allow ease of
understanding when used as a
teaching aid. It is easier to see the
rows of copper tape underneath the
vinyl sheet used to protect the
components within the mat. The
mat is 128x64 rows, and the tabs on
the 64 side are connected to pull
down resistors that allow for the
signal voltages to be dissipated each
time the rows are utilised.
Key Takeaways and Future Considerations
This project allowed me to gain quite a large amount of experience
in circuit design and fabrication. It also allowed me to gain a deeper
understanding of microcontrollers, their communication with other
PC’s, and their limitations in terms of speed, inputs, and outputs.
The most rewarding part of this project was getting a smaller
prototype to work, as it required me to figure out how to get both
the microcontroller and data visualization codes to run
simultaneously and work together. In the future, speed is the most
important factor to improve. I would like to look into an optimized
detection algorithm that allows the system to test less points until a
significant change is noticed, then increase acquisition in the region.
GoKart Benchtop Electrical System
University of Waterloo IDEAs Clinic
The purpose of the benchtop electrical system is to replicate the
electrical system used in an electric GoKart built by coop students at
the UW IDEAs clinic. This vehicle is used by University of Waterloo
professors when teaching courses covering electrical and autonomous
vehicles. The benchtop electrical system will be extremely helpful
when discussing how the system works, and is laid out in such a way
to make the key components visible and their connections intuitive to
students. To build the enclosure, a mixture of hand manufactured
parts, laser cut acrylic, and mounts from McMaster-CARR were used.
Objective
The system is powered by two 12 volt batteries, which sit next to
the model as they weigh about 30 lbs each and mounting them
using acrylic would not be feasible. The top of the enclosure holds
the two motor controllers used in the system. Both motors sit
inside the enclosure, and the driving motor and generator are
connected by a chain. I designed the enclosure so that the acrylic
sheets, when laser cut, would provide ventilation for the motors
inside, but still protect any user from the chain and sprockets
inside in case anything were to happen. A small handheld controller
provides the user with the ability to drive both engines and utilize
them as generators. It simulates gas and brakes, with switches to
turn on the power supply and to put the motors in reverse. There is
a place on the front right corner for an emergency stop button
which will be incorporated as an additional safety feature.
Key Takeaways and Future Considerations
When working on this project, I had very minimal experience with
circuits and electrical design. This caused me to be very
overwhelmed when first looking at the motor controller diagrams,
and the electrical system already in the GoKart. I learned to break
down these systems so I don’t get overwhelmed when trying to
understand them. This project was also my first-time using McMaster-
CARR and designing parts to be laser cut. Although the majority of
the parts turned out very nicely, I ran into trouble with the mounting
points for the motor controller, as I used dimensions from a similar
part that were slightly different. I had to hand drill the new
mounting holes, making the sheet look sloppy in comparison to what
it should have. This taught me to be very careful when designing to
accommodate for ordered parts and tolerancing in manufacturing.
Description